Some modern processor workloads call for significant operating system processing resources, such as Java server workloads that may utilize a substantial portion (e.g., greater than 50%) of processing resources in kernel execution mode relative to user execution mode. One reason that Java, along with other emerging object-oriented codes, utilizes a large amount of processing resources for operating system activity is due to their tendency towards dynamically executing a large number of branch instructions in kernel execution mode. Computer systems may include a branch predictor that attempts to predict branch directions based upon previously logged branch resolutions. By providing accurate predictions, the branch predictor improves a processor's instruction pipeline flow and improves performance.